#include<stdio.h>
#include<string.h>

int main(int argc, char ** argv)
{
    unsigned char nomeArq[40];	
    char cripto[40];
    char cripto2[40];
    char chave[40];
    char ass[3];
    char tipo; 
    FILE * arq;
    int i=0;
    int cont;
    int n;
    int j=0;
    int tamChave;
    int tamCripto;
    int checkSum2=0;
    int checkSum;
    int tamanho;

    int result;


    if((argv[1]==0))
    {
        printf("Sem argumento\n");    
        printf("\nDigite o nome do arquivo:  ");
        gets(nomeArq);
        printf("\nDigite a chave:  ");
        gets(chave);

    }    
    else
    {    
        strcpy(nomeArq,argv[1]);
        strcpy(chave,argv[2]);
    }
    tamChave = strlen(chave);

    if((arq=fopen(nomeArq,"r+"))==NULL)
    {
	    printf("\nPau");
    }
    else
	{   
            fread(&ass,3,1,arq);
            fread(&tipo,1,1,arq);
            fread(&tamanho,4,1,arq);
		    fread(&cripto,tamanho, 1, arq);		
            fread(&checkSum,4,1,arq);
    
		    for(i=0;i<tamanho;i++)
  		    {
    	    	if(j> tamChave-1)j=0;
    
                 	cripto2[i] = (cripto[i]^chave[j]);
                    checkSum2 = checkSum2+cripto2[i];
        
                j++;
 		    }
    
		    result = checkSum2-checkSum;
            return(result);

	    }
        fclose(arq);
}
